package editor.cn;

//You are given a string allowed consisting of distinct characters and an array 
//of strings words. A string is consistent if all characters in the string appear 
//in the string allowed. 
//
// Return the number of consistent strings in the array words. 
//
// 
// Example 1: 
//
// 
//Input: allowed = "ab", words = ["ad","bd","aaab","baa","badab"]
//Output: 2
//Explanation: Strings "aaab" and "baa" are consistent since they only contain c
//haracters 'a' and 'b'.
// 
//
// Example 2: 
//
// 
//Input: allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"]
//Output: 7
//Explanation: All strings are consistent.
// 
//
// Example 3: 
//
// 
//Input: allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"]
//Output: 4
//Explanation: Strings "cc", "acd", "ac", and "d" are consistent.
// 
//
// 
// Constraints: 
//
// 
// 1 <= words.length <= 104 
// 1 <= allowed.length <= 26 
// 1 <= words[i].length <= 10 
// The characters in allowed are distinct. 
// words[i] and allowed contain only lowercase English letters. 
// 
// Related Topics 字符串 
// 👍 2 👎 0

public class CountTheNumberOfConsistentStrings{
    public static void main(String[] args) {
        Solution solution = new CountTheNumberOfConsistentStrings().new Solution();
        int ab = solution.countConsistentStrings("ab", new String[]{"ad", "bd", "aaab", "baa", "badab"});
        System.out.println(ab);
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int countConsistentStrings(String allowed, String[] words) {
        char[] chars = allowed.toCharArray();
        int count = 0;
        boolean flag = true;
        int[] letter = new int[26];
        for (char aChar : chars) {
            letter[aChar - 'a'] = 1;
        }
        for (String word : words) {
            char[] chars1 = word.toCharArray();
            for (char c : chars1) {
                if (letter[c - 'a'] != 1) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                count++;
            } else {
                flag = true;
            }
        }
        return count;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}